package com.huoniu.api.enums;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;

import java.util.HashMap;
import java.util.Map;

/**
 * @类 名： Level <br/>
 * @描 述： <br/>
 * @日 期： 2020/9/5 14:53<br/>
 * @作 者： 侯建军<br/>
 * @版 本： 1.0.0
 * @since JDK 1.8
 */
public enum Level {
    GENERAL(0, "普通"),
    EXPERT(1, "专家");

    @EnumValue
    private Integer code;
    private String name;

    Level(Integer code, String name) {
        this.code = code;
        this.name = name;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @JsonValue
    public Map<String, Object> toMap() {
        Map<String, Object> map = new HashMap<>();
        map.put("code", this.getCode());
        map.put("name", this.getName());
        return map;
    }

    public static JSONArray toJson() {
        JSONArray jsonArray = new JSONArray();
        for (Level e : Level.values()) {
            JSONObject object = new JSONObject();
            object.put("code", e.getCode());
            object.put("name", e.getName());
            jsonArray.add(object);
        }
        return jsonArray;
    }
    public static String getNameByCode(String code) {
        String name="";
        for (Level ele : values()) {
            if (ele.getCode().equals(Integer.valueOf(code))) {
                name=ele.getName();
                break;
            }
        }
        return name;
    }
}
